home *** CD-ROM | disk | FTP | other *** search
/ QRZ! Ham Radio 5 / QRZ Ham Radio Callsign Database - Volume 5.iso / digests / tcp / 940231.txt < prev    next >
Encoding:
Internet Message Format  |  1994-11-13  |  11.1 KB

  1. Date: Mon, 17 Oct 94 04:30:02 PDT
  2. From: Advanced Amateur Radio Networking Group <tcp-group@ucsd.edu>
  3. Errors-To: TCP-Group-Errors@UCSD.Edu
  4. Reply-To: TCP-Group@UCSD.Edu
  5. Precedence: List
  6. Subject: TCP-Group Digest V94 #231
  7. To: tcp-group-digest
  8.  
  9.  
  10. TCP-Group Digest            Mon, 17 Oct 94       Volume 94 : Issue  231
  11.  
  12. Today's Topics:
  13.                          Fix for KA9Q/Jnos??
  14.                              JNOS Timers
  15.                            SCC.C - various
  16.                          TCP Retry Time [fwd]
  17.  
  18. Send Replies or notes for publication to: <TCP-Group@UCSD.Edu>.
  19. Subscription requests to <TCP-Group-REQUEST@UCSD.Edu>.
  20. Problems you can't solve otherwise to brian@ucsd.edu.
  21.  
  22. Archives of past issues of the TCP-Group Digest are available
  23. (by FTP only) from UCSD.Edu in directory "mailarchives".
  24.  
  25. We trust that readers are intelligent enough to realize that all text
  26. herein consists of personal comments and does not represent the official
  27. policies or positions of any party.  Your mileage may vary.  So there.
  28. ----------------------------------------------------------------------
  29.  
  30. Date: Mon, 17 Oct 1994 01:00:24 -0800 (PDT)
  31. From: jmorriso@bogomips.ee.ubc.ca (John Paul Morrison)
  32. Subject: Fix for KA9Q/Jnos??
  33.  
  34. Does anyone have the fix for JNOS or KA9Q that causes it to crash when
  35. it receives millions of little packets? For example, I can crash Jnos
  36. at will by doing a flood ping: ping -f jnosbox. I know this was
  37. discussed recently, and someone had a fix for it.
  38.  
  39.  
  40. ---------------------------------------------------------------------------
  41. BogoMIPS Research Labs  --  bogosity research & simulation  --  VE7JPM  -- 
  42. jmorriso@bogomips.ee.ubc.ca ve7jpm@ve7jpm.ampr.org jmorriso@ve7ubc.ampr.org
  43. ---------------------------------------------------------------------------
  44.  
  45. ------------------------------
  46.  
  47. Date: Sun, 16 Oct 1994 07:09:24 -0600 (MDT)
  48. From: Klarsen <klarsen@kazak.NMSU.Edu>
  49. Subject: JNOS Timers
  50.  
  51.     This weekend ka5oyo Bill Dupree and I decided to look at a vexing 
  52. problem we encountered. We are both running jnos110G compiled by 
  53. ourselves to meet our needs. 
  54.  
  55.     Since Bill lives in Deming NM he has no free access to the 
  56. internet and has relied on my putting new and wonderful things in my 
  57. /public for him to get using ftp. 
  58.  
  59.     The problem was this. We are connected thru a X1J node I put up 
  60. so our connects are full tcp carried by AX.25. When there is no other 
  61. activity we could get a data rate of about 20 bytes/sec. But if there is 
  62. ANY interferance the rate drops to under 10 bytes/sec.
  63.  
  64.     It seems that the jnos timers were incapable of coping with a 
  65. missed packet. That started me looking in the WONDERFUL!!!! cmnshelp.zip 
  66. files I put up in nos for timers. I found the first one in the ax25 section.
  67.  
  68.     AX25 has a timer called ax25 maxwait. When set to zero it is not 
  69. functional. The DEFAULT setting is zero. So I set ax25 maxwait to 30000 
  70. (30 seconds) and we experimented. That sure helped when things were busy! 
  71. But it wasen't a full fix. We looked for other timers.
  72.  
  73.     There is a TCP maxwait too! It is exactly the same function as 
  74. the ax25 timer. And the default setting is zero. This means if the tcp 
  75. server ever misses a packet it just waits forever for that packet! So we 
  76. set TCP maxwait to 30000 and then WOW! When another user is busy nos 
  77. backs off and lets him do his thing. But if there is a 30 second period 
  78. of quiet, nos takes off again and tries to get back in business. It sure 
  79. looks good from all aspects.
  80.  
  81.     The bottom line is: put this in your autoexec.nos file:
  82.  
  83. ax25 maxwait 30000
  84. tcp maxwait 30000
  85.  
  86.     I am sure you will notice a differance and the fun of ftp will 
  87. return. We are not done. There are almost for sure more timers in nos 
  88. that we have not found that are important and at default zero settings. 
  89. So if you find anything that looks bad please put it out. 
  90.  
  91. -karl k5di
  92.  
  93. ------------------------------
  94.  
  95. Date: Mon, 17 Oct 94 10:32:22 BST
  96. From: A.D.S.Benham@bnr.co.uk
  97. Subject: SCC.C - various
  98.  
  99. A couple of points regarding SCC.C:
  100.  
  101. Firstly, one of my locals found that doing a "detach <scc port>"
  102. causes NOS to trash both channels on the SCC chip concerned.
  103.  
  104. The fix for this involves modifying scc_stop():
  105.  
  106. -----------8<-----------------8<-----------------
  107.  
  108. /* de-activate SCC channel */
  109. static int
  110. scc_stop(ifp)
  111. struct iface *ifp;
  112. {
  113.     struct sccchan *scc = Sccchan[ifp->dev];
  114.     int i_state, d, dum = 1;
  115.  
  116.     i_state = dirps();
  117.  
  118.     VOID(RDREG(scc->ctrl));             /* make sure pointer is written */
  119. >>  or(scc,R9,(ifp->dev % 2) ? CHRB : CHRA );   /* reset the channel */
  120.  
  121. >>  for (d = 0; d < 1000; d++)  /* wait - needs 5 PCLK cycles before next SCC access */
  122. >>      dum *= 10;
  123.  
  124.     switch(ifp->type){
  125.         case CL_SERIAL_LINE:
  126.         case CL_KISS:
  127.             free(scc->fifo.buf);
  128.         default:
  129.             break;
  130.     }
  131.     free(scc);
  132.     Sccchan[ifp->dev] = NULLCHAN;
  133.     restore(i_state);
  134.     return 0;
  135. }
  136.  
  137. -----------8<-----------------8<-----------------
  138.  
  139. (I'm not sure if the wait loop is the right sort of timing - but it's copied
  140.  from the Hardware Reset done earlier in the code).
  141.  
  142.  
  143.  
  144. Secondly, there has been discussion about open-squelch operation. I currently use
  145. a BayComm USCC card above the G8BPQ switch. However last week I had an experiment
  146. at getting SCC.C to operate with open-squelch.
  147.  
  148. The following are my "first-cut" mods - but there is room for improvement:
  149.  
  150. 1/. In scc_sdlc(), change:
  151.  
  152.     if (Sccinfo.hwtype & HWBAYCOM){        /* BayCom-USCC card? */
  153.         wr(scc,R15,BRKIE|DCDIE);        /* enable ABORT, DCD interrupts */
  154.     } else {
  155.         wr(scc,R15,BRKIE|CTSIE|DCDIE);  /* enable ABORT, CTS & DCD interrupts */
  156.     }
  157.  
  158. to:
  159.  
  160.     if (Sccinfo.hwtype & HWBAYCOM){        /* BayCom-USCC card? */
  161.         wr(scc,R15,BRKIE);    /* 941012 Don't want DCD any more */
  162.         /* wr(scc,R15,BRKIE|DCDIE); */        /* enable ABORT, DCD interrupts */
  163.     } else {
  164.         wr(scc,R15,BRKIE|CTSIE|DCDIE);  /* enable ABORT, CTS & DCD interrupts */
  165.     }
  166.  
  167. i.e. so DCD changes no longer cause an interrupt.
  168.  
  169.  
  170. 2/. Immediately after the above code, change:
  171.  
  172.     if(RDREG(scc->ctrl) & DCD){    /* DCD is now ON */
  173.         if (!scc->extclock)
  174.             WRSCC(scc->ctrl,R14,SEARCH|scc->wreg[R14]); /* DPLL: enter search mode */
  175.         or(scc,R3,ENT_HM|RxENABLE);    /* enable the receiver, hunt mode */
  176.     }
  177. to:
  178.     if (!scc->extclock)
  179.         WRSCC(scc->ctrl,R14,SEARCH|scc->wreg[R14]); /* DPLL: enter search mode */
  180.     or(scc,R3,ENT_HM|RxENABLE);    /* enable the receiver, hunt mode */
  181.  
  182. i.e. enable rx.
  183.  
  184.  
  185. 3/.  in scctimer(), change:
  186.                     if(scc->a.fulldup == 0){
  187.                         Random = 21 * Random + 53;
  188.                         if(scc->status & DCD || scc->a.persist < Random){
  189.                             /* defer transmission again. check for limit */
  190. defer_it:                        if(--(scc->a.maxdefer) == 0){
  191.  
  192. to:
  193.                     if(scc->a.fulldup == 0){
  194.                         Random = 21 * Random + 53;
  195.                         if(!(scc->status & SYNC_HUNT) || scc->a.persist < Random) {
  196.                             /* defer transmission again. check for limit */
  197. defer_it:                        if(--(scc->a.maxdefer) == 0){
  198.  
  199. i.e check SYNC_HUNT, not DCD.
  200.  
  201.  
  202. 4/. A little later in scctimer(), change:
  203.  
  204.             if((scc2 = Sccchan[i]) != NULLCHAN &&
  205.               scc2 != scc &&
  206.               uchar(scc2->group) & uchar(scc->group) &&
  207.               ((scc->group & TXGROUP && scc2->wreg[R5] & RTS) ||
  208.               (scc->group & RXGROUP && (scc2->status & DCD)))){                        goto defer_it;
  209.             }
  210. to:
  211.             if((scc2 = Sccchan[i]) != NULLCHAN &&
  212.               scc2 != scc &&
  213.               uchar(scc2->group) & uchar(scc->group) &&
  214.               ((scc->group & TXGROUP && scc2->wreg[R5] & RTS) ||
  215.               (scc->group & RXGROUP && !(scc2->status & SYNC_HUNT)))){
  216.                 goto defer_it;
  217.             }
  218.  
  219. i.e. check SYNC_HUNT, not DCD.
  220.  
  221.  
  222.  
  223. Thirdly, has anyone had any experience of using a Zilog 85230 on an SCC card, as a
  224. plug in replacement for a 8530 ?
  225.  
  226.  
  227. Andrew Benham
  228. ----------------------------------------------------------------
  229. A.D.S.Benham@bnr.co.uk   BNR Europe Ltd, London Road, Harlow,
  230.                            Essex CM17 9NA
  231.                          +44 1279 402372    Fax: +44 1279 402885
  232. Home:                    g8fsl@g8fsl.ampr.org [44.131.181.17]
  233. ----------------------------------------------------------------
  234.  
  235. ------------------------------
  236.  
  237. Date: 16 Oct 94 14:57:00 PST
  238. From: "UCLA::CORBIN" <CORBIN%UCLA.decnet@physics.ucla.edu>
  239. Subject: TCP Retry Time [fwd]
  240.  
  241. *******The following is a forward for Mike, wd6ehr
  242.  
  243. ===============================================================
  244. Subject: Re: TCP retry time
  245. In message <9409221950.AA28982@nadc.nadc.navy.mil> crompton@nadc.nadc.navy.mil
  246. (D. Crompton) writes:
  247.  
  248. > The REAL answer to this has always been FIX the problem - that is the
  249. > bad path. Really bad circuits will always be a problem. Setting the
  250. > retry mechanism to overcome this is the wrong way and will
  251. > ultimately hurt others on the circuit who do have good connection.
  252. > We typically have not put enough effort into our RF paths but rather
  253. > want some quick SW fix for our hardware problems.
  254.  
  255. I have had EXCELLENT paths to other tcp/ip stations and still ended up backed
  256. off into eternity, back in the dark ages when we ran NET and only had
  257. exponential backoff.  Large ftp's were virtually a pipedream - and we didn't
  258. have ftp resume back then, either! (Yet another problem fixed in software :-)
  259. Channel congestion is a fact of life in many locations.  Retries and fixing
  260. things in software are a fact of life in the big city.
  261.  
  262. Many of our bands are plagued with incredible levels of QRM, for many reasons.
  263. These days, with the de facto "no theory" test, many amateurs are electronic
  264. imbeciles (pragmatic observation, not criticism) who "know the answers" but
  265. don't understand the questions: "'Too much splatter, set your deviation', you
  266. say?  I'm not a deviant - I'm happily married!"  "What do you mean I can't run
  267. more than one rig on the same band at the same site without cavities and
  268. circulators?  It works fine - I've done it on packet for years!"
  269.  
  270. Both of these problems are "fixed" with "retry 0" and other sledge hammer
  271. methods.  However, they generate lots of QRM for the rest of us, and certainly
  272. compound channel congestion.
  273.  
  274. We're also plagued with QRM from other services, i.e. radar on 440, etc.  In
  275. fact, the only non-shared VHF plus bands we have are 2 meters and 222 mHz, and
  276. both of these are jam-packed solid in Southern California.
  277.  
  278. Besides, MANY hardware problems are fixed in software these days.  Oftentimes,
  279. it is much simpler and more practical to do so.  However, I agree that jamming
  280. the channel with a zillion retries by stations running "oinker mode" (i.e.
  281. persist 255), or other "brute force" methods, is not "fixing" a problem.
  282.  
  283. What we need is something that will actually "fix" problems.  Most rejected
  284. packets have small errors.  Some type of damaged packet recovery system would
  285. go a long way toward improving our paths.  Something like Reed-Solomon error
  286. correction, that adds redundant information to allow damage to be repaired,
  287. would be good.  If we use this, it would make sense to disable it until
  288. needed, i.e. when retries are detected.  Another possibility is some form of
  289. memory ARQ, where we save damaged packets and try to reassemble these into
  290. good ones.  With the computers most of us have these days, and the fact that
  291. even 486's are under $500, I don't think processor power is an issue :-)
  292.  
  293. As long as we expect "perfect packets" in a very imperfect RF world, we're
  294. going to have problems.
  295.  
  296.  73, Mike Curtis wd6ehr
  297.  
  298. ------------------------------
  299.  
  300. End of TCP-Group Digest V94 #231
  301. ******************************
  302.